package ro.isdc.vms.party.domain;

import java.util.ArrayList;
import java.util.List;

import ro.isdc.vms.misc.domain.Entity;

/**
 * An entity which can be a person or a company.
 * 
 * @author Andrei.Chirila / ISDC! Romania
 * @version 1.0.0
 * @date Jul 20, 2009
 */
public abstract class Party extends Entity {

	/**
	 * Determines whether the party is licensed for the vehicle sales business
	 * domain. (Default = false)
	 */
	private boolean isVehicleSalesLicensed = false;
	
	private PartyType partyType;

	/** The postal addresses. */
	private List<PostalAddress> postalAddresses = new ArrayList<PostalAddress>();

	/** The electronic addresses. */
	private List<ElectronicAddress> electronicAddresses = new ArrayList<ElectronicAddress>();

	/**
	 * @return the isVehicleSalesLicensed
	 */
	public boolean isVehicleSalesLicensed() {
		return isVehicleSalesLicensed;
	}

	/**
	 * @param isVehicleSalesLicensed the isVehicleSalesLicensed to set
	 */
	public void setVehicleSalesLicensed(final boolean isVehicleSalesLicensed) {
		this.isVehicleSalesLicensed = isVehicleSalesLicensed;
	}

	/**
	 * @return the partyType
	 */
	public PartyType getPartyType() {
		return partyType;
	}

	/**
	 * @param partyType the partyType to set
	 */
	public void setPartyType(final PartyType partyType) {
		this.partyType = partyType;
	}

	/**
	 * @return the postalAddresses
	 */
	public List<PostalAddress> getPostalAddresses() {
		return postalAddresses;
	}

	/**
	 * @param postalAddresses the postalAddresses to set
	 */
	public void setPostalAddresses(final List<PostalAddress> postalAddresses) {
		this.postalAddresses = postalAddresses;
	}

	/**
	 * @return the electronicAddresses
	 */
	public List<ElectronicAddress> getElectronicAddresses() {
		return electronicAddresses;
	}

	/**
	 * @param electronicAddresses the electronicAddresses to set
	 */
	public void setElectronicAddresses(final List<ElectronicAddress> electronicAddresses) {
		this.electronicAddresses = electronicAddresses;
	}

}
